package cn.commander.utils;

import org.springframework.util.StringUtils;

import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


/**
 * Author: zhongyi_yang <br/>
 * Description: md5加密
 * Version: 1.0
 * Date: 2018/6/7 19:29
 */
public class MD5Utils {
	/**
	 * 对字符串进行Md5加密
	 *
	 * @param input 原文
	 * @return md5后的密文
	 */
	public static String md5(String input) {
		byte[] code = null;
		try {
			code = MessageDigest.getInstance("md5").digest(input.getBytes());
		} catch (NoSuchAlgorithmException e) {
			code = input.getBytes();
		}
		BigInteger bi = new BigInteger(code);
		return bi.abs().toString(32).toUpperCase();
	}

	/**
	 * 对字符串进行Md5加密
	 *
	 * @param input 原文
	 * @param salt  随机数
	 * @return string
	 */
	public static String generatePasswordMD5(String input, String salt) {
		if (StringUtils.isEmpty(salt)) {
			salt = "";
		}
		return md5(salt + md5(input));
	}

	public static void main(String[] args) {
		String pass = "admin";
		for (int i=0;i<1024;i++){
			if (i!=1023) {
				pass = md5(pass);
			}
		}
		System.out.println("1024次MD5:" + md5(pass));
	}

}
